1. Field of the Invention
This invention relates in general to feature based three-dimensional (3D) computer aided design (CAD) systems, and more particularly, to a method, apparatus and article of manufacture for instance based mirroring in feature modeling.
2. Description of Related Art
Traditional mechanical CAD systems model mechanical parts using boundary representations. Typical boundary representations use BODY, FACE, EDGE, and VERTEX to describe mechanical parts. For example, the part model in FIG. 1A has one body, six faces, twelve edges, and eight vertices.
Feature based CAD systems add feature recipes on top of boundary representations. A feature recipe comprises feature definitions, dependency identifications, and constraints. For example, the part model in FIG. 1B has one "base" feature and one "hole" feature which is constrained to two edges of the base feature by two dimensional constraints.
Dependency identification is an important part of the feature recipe. Dependency identification is used to identify geometric entities of the boundary representation on which the features depend. For example, the HOLE feature in FIG. 1B depends on the two edges that must be identified by the dependency identification information. Part of the dependency identification information must be stored with the boundary representation. This makes the boundary representation in feature based CAD systems different from that of traditional CAD systems.
Mechanical assemblies often contain pairs of parts that are symmetric to a plane. Instead of modeling both symmetric parts, CAD system users prefer to model only one half of the pair, and then perform a mirror transformation to obtain the symmetric counterpart, e.g., the mirrored part model.
In feature-based solid modeling, a mirrored part model should contain all of the original features in a mirrored form, and maintain the validity of the original feature recipe. A mirrored part model should behave the same as a non-mirrored part model in terms of modeling activities such as feature creation, alteration, and deletion.
Current mirroring require processing of feature recipes. Current mirror methods mirror the feature recipe itself, which requires programming a mirror method for each type feature of the CAD system, such as the EXTRUSION feature, the HOLE feature, etc. This approach is limited because of the amount of time required to write the programming, and further limited because new features will not have mirror methods without additional programming time for new releases of the CAD system.
Further, the mirror process of dependency identifications pose an even bigger problem for current mirroring methods. Without valid dependency identifications, a feature recipe would be useless. For example, the HOLE feature in FIG. 2 may be located incorrectly if the two edges (dependency identifications) are incorrectly mirrored. As a result, each type of dependency identifications in the feature recipe also needs dedicated programs for their mirror process.
As such, current mirroring processes are often complicated, time-consuming, error prone, and wasteful of computer resources.
It can be seen, then, that there is a need in the art for a mirroring method that avoids processing of feature equations. It can also be seen that there is a need in the art for a mirroring method that reduces the use of computer resources.